Python 的異常處理主要用來處理程式運行過程中可能發生的錯誤,這樣程式不會因為錯誤而崩潰。異常處理的關鍵是使用 try-except
語句來捕捉和處理這些錯誤。
try:
# 可能會發生錯誤的程式碼
result = 10 / 0
except ZeroDivisionError:
# 發生除以零錯誤時執行的程式碼
print("不能除以 0!")
try
:在 try
區塊中寫可能會出現錯誤的程式碼。except
:如果發生指定的錯誤類型,執行這段代碼。上面例子處理了除以零的情況。ZeroDivisionError
是 Python 提供的內建異常,表示除數為零。捕捉多種不同的異常類型。
try:
num = int(input("輸入一個整數: "))
result = 10 / num
except ZeroDivisionError:
print("不能除以 0!")
except ValueError:
print("請輸入正確的整數!")
ZeroDivisionError
:處理當輸入數字為 0 時發生的錯誤。ValueError
:處理當用戶輸入的不是整數時發生的錯誤。使用 except
不指定錯誤類型,可以捕捉所有異常,但不推薦這樣使用,因為它會隱藏真正的錯誤。
try:
result = 10 / int(input("輸入一個數字: "))
except:
print("發生了一個錯誤!")
except
將捕捉所有錯誤,但不會具體說明錯誤的類型。finally
區塊finally
區塊無論是否發生異常都會執行,通常用來處理資源的釋放工作,例如關閉檔案。
try:
file = open('example.txt', 'r')
content = file.read()
except FileNotFoundError:
print("檔案未找到!")
finally:
file.close()
print("檔案已關閉")
finally
總是會執行,確保即使發生錯誤,也能執行重要的操作,比如關閉檔案。else
區塊else
區塊在沒有異常發生時才會執行。
try:
result = 10 / 2
except ZeroDivisionError:
print("不能除以 0!")
else:
print(f"結果是 {result}")
else
只在沒有異常發生時才執行,這樣可以將異常處理和正常情況分開。